home *** CD-ROM | disk | FTP | other *** search
/ Chip 2006 July / CHIP 2006-07.2.iso / program / web_gelistirme / easyphp1-7_setup.exe / {app} / phpmyadmin / main.php < prev    next >
Encoding:
PHP Script  |  2003-09-10  |  23.8 KB  |  650 lines

  1. <?php
  2. /* $Id: main.php,v 1.144 2003/08/01 00:09:30 rabus Exp $ */
  3. // vim: expandtab sw=4 ts=4 sts=4:
  4.  
  5. /**
  6.  * Don't display the page heading
  7.  */
  8. define('PMA_DISPLAY_HEADING', 0);
  9.  
  10. /**
  11.  * Gets some core libraries and displays a top message if required
  12.  */
  13. if (!defined('PMA_GRAB_GLOBALS_INCLUDED')) {
  14.     include('./libraries/grab_globals.lib.php');
  15. }
  16. if (!defined('PMA_COMMON_LIB_INCLUDED'))  {
  17.     include('./libraries/common.lib.php');
  18. }
  19. // Puts the language to use in a cookie that will expire in 30 days
  20. if (!isset($pma_uri_parts)) {
  21.     $pma_uri_parts = parse_url($cfg['PmaAbsoluteUri']);
  22.     $cookie_path   = substr($pma_uri_parts['path'], 0, strrpos($pma_uri_parts['path'], '/'));
  23.     $is_https      = (isset($pma_uri_parts['scheme']) && $pma_uri_parts['scheme'] == 'https') ? 1 : 0;
  24. }
  25. setcookie('lang', $lang, time() + 60*60*24*30, $cookie_path, '', $is_https);
  26. // Defines the "item" image depending on text direction
  27. $item_img = 'images/item_' . $text_dir . '.png';
  28. // Handles some variables that may have been sent by the calling script
  29. if (isset($db)) {
  30.     unset($db);
  31. }
  32. if (isset($table)) {
  33.     unset($table);
  34. }
  35. $show_query = '1';
  36. require('./header.inc.php');
  37. if (isset($message)) {
  38.     PMA_showMessage($message);
  39. }
  40. else if (isset($reload) && $reload) {
  41.     // Reloads the navigation frame via JavaScript if required
  42.     echo "\n";
  43.     ?>
  44. <script type="text/javascript" language="javascript1.2">
  45. <!--
  46. window.parent.frames['nav'].location.replace('./left.php?<?php echo PMA_generate_common_url('', '', '&');?>&hash=' + <?php echo (($cfg['QueryFrame'] && $cfg['QueryFrameJS']) ? 'window.parent.frames[\'queryframe\'].document.hashform.hash.value' : "'" . md5($cfg['PmaAbsoluteUri']) . "'"); ?>););
  47. //-->
  48. </script>
  49.     <?php
  50. }
  51. echo "\n";
  52.  
  53.  
  54. /**
  55.  * Displays the welcome message and the server informations
  56.  */
  57. ?>
  58. <h1><?php echo sprintf($strWelcome, ' phpMyAdmin ' . PMA_VERSION); ?></h1>
  59.  
  60. <?php
  61. // Don't display server info if $server == 0 (no server selected)
  62. // loic1: modified in order to have a valid words order whatever is the
  63. //        language used
  64. if ($server > 0) {
  65.     // robbat2: Use the verbose name of the server instead of the hostname
  66.     //          if a value is set
  67.     if(!empty($cfg['Server']['verbose'])) {
  68.         $server_info = $cfg['Server']['verbose'];
  69.     } else {
  70.         $server_info = $cfg['Server']['host'];
  71.     }
  72.     $server_info            .= (empty($cfg['Server']['port']) ? '' : ':' . $cfg['Server']['port']);
  73.     // loic1: skip this because it's not a so good idea to display sockets
  74.     //        used to everybody
  75.     // if (!empty($cfg['Server']['socket']) && PMA_PHP_INT_VERSION >= 30010) {
  76.     //     $server_info .= ':' . $cfg['Server']['socket'];
  77.     // }
  78.     $local_query             = 'SELECT VERSION() as version, USER() as user';
  79.     $res                     = PMA_mysql_query($local_query) or PMA_mysqlDie('', $local_query, FALSE, '');
  80.     $mysql_cur_user_and_host = PMA_mysql_result($res, 0, 'user');
  81.     $mysql_cur_user          = substr($mysql_cur_user_and_host, 0, strrpos($mysql_cur_user_and_host, '@'));
  82.  
  83.     $full_string     = str_replace('%pma_s1%', PMA_mysql_result($res, 0, 'version'), $strMySQLServerProcess);
  84.     $full_string     = str_replace('%pma_s2%', $server_info, $full_string);
  85.     $full_string     = str_replace('%pma_s3%', $mysql_cur_user_and_host, $full_string);
  86.  
  87.     echo '<p><b>' . $full_string . '</b></p><br />' . "\n";
  88. } // end if
  89.  
  90.  
  91. /**
  92.  * Reload mysql (flush privileges)
  93.  */
  94. if (($server > 0) && isset($mode) && ($mode == 'reload')) {
  95.     $result = PMA_mysql_query('FLUSH PRIVILEGES'); // Debug: or PMA_mysqlDie('', 'FLUSH PRIVILEGES', FALSE, 'main.php?' . PMA_generate_common_url());
  96.     echo '<p><b>';
  97.     if ($result != 0) {
  98.       echo $strMySQLReloaded;
  99.     } else {
  100.       echo $strReloadFailed;
  101.     }
  102.     echo '</b></p>' . "\n\n";
  103. }
  104.  
  105.  
  106. /**
  107.  * Displays the MySQL servers choice form
  108.  */
  109. if ($server == 0 || count($cfg['Servers']) > 1) {
  110.     ?>
  111. <!-- MySQL servers choice form -->
  112. <table>
  113. <tr>
  114.     <th><?php echo $strServerChoice; ?></th>
  115. </tr>
  116. <tr>
  117.     <td>
  118.         <form method="post" action="index.php" target="_parent">
  119.             <select name="server">
  120.     <?php
  121.     echo "\n";
  122.     reset($cfg['Servers']);
  123.     while (list($key, $val) = each($cfg['Servers'])) {
  124.         if (!empty($val['host'])) {
  125.             echo '                <option value="' . $key . '"';
  126.             if (!empty($server) && ($server == $key)) {
  127.                 echo ' selected="selected"';
  128.             }
  129.             echo '>';
  130.             if (!empty($val['verbose'])) {
  131.                 echo $val['verbose'];
  132.             } else {
  133.                 echo $val['host'];
  134.                 if (!empty($val['port'])) {
  135.                     echo ':' . $val['port'];
  136.                 }
  137.                 // loic1: skip this because it's not a so good idea to display
  138.                 //        sockets used to everybody
  139.                 // if (!empty($val['socket']) && PMA_PHP_INT_VERSION >= 30010) {
  140.                 //     echo ':' . $val['socket'];
  141.                 // }
  142.             }
  143.             // loic1: if 'only_db' is an array and there is more than one
  144.             //        value, displaying such informations may not be a so good
  145.             //        idea
  146.             if (!empty($val['only_db'])) {
  147.                 echo ' - ' . (is_array($val['only_db']) ? implode(', ', $val['only_db']) : $val['only_db']);
  148.             }
  149.             if (!empty($val['user']) && ($val['auth_type'] == 'config')) {
  150.                 echo '  (' . $val['user'] . ')';
  151.             }
  152.             echo ' </option>' . "\n";
  153.         } // end if (!empty($val['host']))
  154.     } // end while
  155.     ?>
  156.             </select>
  157.             <input type="hidden" name="lang" value="<?php echo $lang; ?>" />
  158.             <input type="hidden" name="convcharset" value="<?php echo $convcharset; ?>" />
  159.             <input type="submit" value="<?php echo $strGo; ?>" />
  160.         </form>
  161.     </td>
  162. </tr>
  163. </table>
  164. <br />
  165.     <?php
  166. } // end of the servers choice form
  167. ?>
  168.  
  169. <!-- MySQL and phpMyAdmin related links -->
  170. <table>
  171. <tr>
  172.  
  173. <?php
  174. /**
  175.  * Displays the mysql server related links
  176.  */
  177. $is_superuser        = FALSE;
  178. if ($server > 0) {
  179.     // Get user's global privileges ($dbh and $userlink are links to MySQL
  180.     // defined in the "common.lib.php" library)
  181.     $is_create_priv  = FALSE;
  182.     $is_process_priv = TRUE;
  183.     $is_reload_priv  = FALSE;
  184.  
  185. // We were checking privileges with 'USE mysql' but users with the global
  186. // priv CREATE TEMPORARY TABLES or LOCK TABLES can do a 'USE mysql'
  187. // (even if they cannot see the tables)
  188.     $is_superuser    = @PMA_mysql_query('SELECT COUNT(*) FROM mysql.user', $userlink);
  189.     if ($dbh) {
  190.         $local_query = 'SELECT Create_priv, Process_priv, Reload_priv FROM mysql.user WHERE User = \'' . PMA_sqlAddslashes($mysql_cur_user) . '\'';
  191.         $rs_usr      = PMA_mysql_query($local_query, $dbh); // Debug: or PMA_mysqlDie('', $local_query, FALSE);
  192.         if ($rs_usr) {
  193.             while ($result_usr = PMA_mysql_fetch_array($rs_usr)) {
  194.                 if (!$is_create_priv) {
  195.                     $is_create_priv  = ($result_usr['Create_priv'] == 'Y');
  196.                 }
  197.                 /* 02-12-09 rabus: Every user has access to the process list -
  198.                                    at least to its own :-)
  199.                 if (!$is_process_priv) {
  200.                     $is_process_priv = ($result_usr['Process_priv'] == 'Y');
  201.                 }
  202.                 */
  203.                 if (!$is_reload_priv) {
  204.                     $is_reload_priv  = ($result_usr['Reload_priv'] == 'Y');
  205.                 }
  206.             } // end while
  207.             mysql_free_result($rs_usr);
  208.         } // end if
  209.     } // end if
  210.  
  211.     // If the user has Create priv on a inexistant db, show him in the dialog
  212.     // the first inexistant db name that we find, in most cases it's probably
  213.     // the one he just dropped :)
  214.     if (!$is_create_priv) {
  215.         $local_query = 'SELECT DISTINCT Db FROM mysql.db WHERE Create_priv = \'Y\' AND User = \'' . PMA_sqlAddslashes($mysql_cur_user) . '\'';
  216.         $rs_usr      = PMA_mysql_query($local_query, $dbh); // Debug: or PMA_mysqlDie('', $local_query, FALSE);
  217.         if ($rs_usr) {
  218.             $re0     = '(^|(\\\\\\\\)+|[^\])'; // non-escaped wildcards
  219.             $re1     = '(^|[^\])(\\\)+';       // escaped wildcards
  220.             while ($row = PMA_mysql_fetch_array($rs_usr)) {
  221.                 if (ereg($re0 . '(%|_)', $row['Db'])
  222.                     || (!PMA_mysql_select_db(ereg_replace($re1 . '(%|_)', '\\1\\3', $row['Db']), $userlink) && @mysql_errno() != 1044)) {
  223.                     $db_to_create   = ereg_replace($re0 . '%', '\\1...', ereg_replace($re0 . '_', '\\1?', $row['Db']));
  224.                     $db_to_create   = ereg_replace($re1 . '(%|_)', '\\1\\3', $db_to_create);
  225.                     $is_create_priv = TRUE;
  226.                     break;
  227.                 } // end if
  228.             } // end while
  229.             mysql_free_result($rs_usr);
  230.         } // end if
  231.         else if (PMA_MYSQL_INT_VERSION >= 32304) {
  232.             // Finally, let's try to get the user's privileges by using SHOW
  233.             // GRANTS...
  234.             // Maybe we'll find a little CREATE priv there :)
  235.             $local_query = 'SHOW GRANTS FOR ' . $mysql_cur_user_and_host;
  236.             $rs_usr      = PMA_mysql_query($local_query, $dbh);
  237.             if (!$rs_usr) {
  238.                 // OK, now we'd have to guess the user's hostname, but we
  239.                 // only try out the 'username'@'%' case.
  240.                 $local_query = 'SHOW GRANTS FOR ' . $mysql_cur_user;
  241.                 $rs_usr      = PMA_mysql_query($local_query, $dbh);
  242.             }
  243.             if ($rs_usr) {
  244.                 $re0 = '(^|(\\\\\\\\)+|[^\])'; // non-escaped wildcards
  245.                 $re1 = '(^|[^\])(\\\)+'; // escaped wildcards
  246.                 while ($row = PMA_mysql_fetch_row($rs_usr)) {
  247.                     $show_grants_dbname = substr($row[0], strpos($row[0], ' ON ') + 4,(strpos($row[0], '.', strpos($row[0], ' ON ')) - strpos($row[0], ' ON ') - 4));
  248.                     $show_grants_str    = substr($row[0],6,(strpos($row[0],' ON ')-6));
  249.                     if (($show_grants_str == 'ALL') || ($show_grants_str == 'ALL PRIVILEGES') || ($show_grants_str == 'CREATE') || strpos($show_grants_str, 'CREATE')) {
  250.                         if ($show_grants_dbname == '*') {
  251.                             $is_create_priv = TRUE;
  252.                             $db_to_create   = '';
  253.                             break;
  254.                         } // end if
  255.                         else if (ereg($re0 . '%|_', $show_grants_dbname) || !PMA_mysql_select_db($show_grants_dbname, $userlink) && @mysql_errno() != 1044) {
  256.                             $db_to_create = ereg_replace($re0 . '%', '\\1...', ereg_replace($re0 . '_', '\\1?', $show_grants_dbname));
  257.                             $db_to_create = ereg_replace($re1 . '(%|_)', '\\1\\3', $db_to_create);
  258.                             $is_create_priv     = TRUE;
  259.                             break;
  260.                         } // end elseif
  261.                     } // end if
  262.                 } // end while
  263.                 unset($show_grants_dbname);
  264.                 unset($show_grants_str);
  265.                 mysql_free_result($rs_usr);
  266.             } // end if
  267.         } // end elseif
  268.     } // end if
  269.     else {
  270.         $db_to_create = '';
  271.     } // end else
  272.  
  273.     if (!$cfg['SuggestDBName']) {
  274.         $db_to_create = '';
  275.     }
  276.  
  277.     $common_url_query =  PMA_generate_common_url();
  278.  
  279.     if ($is_superuser) {
  280.         $cfg['ShowMysqlInfo']   = TRUE;
  281.         $cfg['ShowMysqlVars']   = TRUE;
  282.         $cfg['ShowChgPassword'] = TRUE;
  283.     }
  284.     if ($cfg['Server']['auth_type'] == 'config') {
  285.         $cfg['ShowChgPassword'] = FALSE;
  286.     }
  287.  
  288.     // loic1: Displays the MySQL column only if at least one feature has to be
  289.     //        displayed
  290.     if ($is_superuser || $is_create_priv || $is_process_priv || $is_reload_priv
  291.         || $cfg['ShowMysqlInfo'] || $cfg['ShowMysqlVars'] || $cfg['ShowChgPassword']
  292.         || $cfg['Server']['auth_type'] != 'config') {
  293.         ?>
  294.     <!-- MySQL server related links -->
  295.     <td valign="top" align="<?php echo $cell_align_left; ?>">
  296.         <table>
  297.         <tr>
  298.             <th colspan="2">  MySQL</th>
  299.         </tr>
  300.         <?php
  301.         // The user is allowed to create a db
  302.         if ($is_create_priv) {
  303.             echo "\n";
  304.             ?>
  305.         <!-- db creation form -->
  306.         <tr>
  307.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  308.             <td>
  309.             <form method="post" action="db_create.php">
  310.                 <?php echo $strCreateNewDatabase . ' ' . PMA_showMySQLDocu('Reference', 'CREATE_DATABASE'); ?><br />
  311.                 <?php echo PMA_generate_common_hidden_inputs(); ?>
  312.                 <input type="hidden" name="reload" value="1" />
  313.                 <input type="text" name="db" value="<?php echo $db_to_create; ?>" maxlength="64" class="textfield" />
  314.                 <input type="submit" value="<?php echo $strCreate; ?>" />
  315.             </form>
  316.             </td>
  317.         </tr>
  318.             <?php
  319.         } else {
  320.             echo "\n";
  321.             ?>
  322.         <!-- db creation no privileges message -->
  323.         <tr>
  324.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  325.             <td>
  326.                 <?php echo $strCreateNewDatabase . ': ' . PMA_showMySQLDocu('Reference', 'CREATE_DATABASE'); ?><br />
  327.                 <?php echo '<i>' . $strNoPrivileges .'</i>'; ?><br />
  328.             </td>
  329.         </tr>
  330.             <?php
  331.         } // end create db form or message
  332.         echo "\n";
  333.  
  334.         // Server related links
  335.         ?>
  336.         <!-- server-related links -->
  337.         <?php
  338.         if ($cfg['ShowMysqlInfo']) {
  339.             echo "\n";
  340.             ?>
  341.         <tr>
  342.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  343.             <td>
  344.                 <a href="./server_status.php?<?php echo $common_url_query; ?>">
  345.                     <?php echo $strMySQLShowStatus . "\n"; ?>
  346.                 </a>
  347.             </td>
  348.         </tr>
  349.             <?php
  350.         } // end if
  351.         if ($cfg['ShowMysqlVars']) {
  352.             echo "\n";
  353.             ?>
  354.         <tr>
  355.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  356.             <td>
  357.                 <a href="./server_variables.php?<?php echo $common_url_query; ?>">
  358.                 <?php echo $strMySQLShowVars;?></a> 
  359.                 <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'SHOW_VARIABLES') . "\n"; ?>
  360.             </td>
  361.         </tr>
  362.             <?php
  363.         }
  364.  
  365.         echo "\n";
  366.         ?>
  367.         <tr>
  368.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  369.             <td>
  370.                 <a href="./server_processlist.php?<?php echo $common_url_query; ?>">
  371.                     <?php echo $strMySQLShowProcess; ?></a> 
  372.                 <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'SHOW_PROCESSLIST') . "\n"; ?>
  373.             </td>
  374.         </tr>
  375.         <?php
  376.  
  377.         if (PMA_MYSQL_INT_VERSION >= 40100) {
  378.             echo "\n";
  379.             ?>
  380.         <tr>
  381.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  382.             <td>
  383.                 <a href="./server_collations.php?<?php echo $common_url_query; ?>">
  384.                     <?php echo $strCharsetsAndCollations; ?></a> 
  385.             </td>
  386.         </tr>
  387.             <?php
  388.         }
  389.  
  390.         if ($is_reload_priv) {
  391.             echo "\n";
  392.             ?>
  393.         <tr>
  394.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  395.             <td>
  396.                 <a href="main.php?<?php echo $common_url_query; ?>&mode=reload">
  397.                     <?php echo $strReloadMySQL; ?></a> 
  398.                 <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'FLUSH') . "\n"; ?>
  399.             </td>
  400.         </tr>
  401.             <?php
  402.         }
  403.  
  404.         if ($is_superuser) {
  405.             echo "\n";
  406.             ?>
  407.         <tr>
  408.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  409.             <td>
  410.                 <a href="server_privileges.php?<?php echo $common_url_query; ?>">
  411.                     <?php echo $strPrivileges; ?></a> 
  412.             </td>
  413.         </tr>
  414.             <?php
  415.         }
  416.         ?>
  417.         <tr>
  418.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  419.             <td>
  420.                 <a href="./server_databases.php?<?php echo $common_url_query; ?>">
  421.                     <?php echo $strDatabases; ?></a>
  422.             </td>
  423.         </tr>
  424.         <tr>
  425.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  426.             <td>
  427.                 <a href="./server_export.php?<?php echo $common_url_query; ?>">
  428.                     <?php echo $strExport; ?></a>
  429.             </td>
  430.         </tr>
  431.         <?php
  432.  
  433.         // Change password (needs another message)
  434.         if ($cfg['ShowChgPassword']) {
  435.             echo "\n";
  436.             ?>
  437.         <tr>
  438.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  439.             <td>
  440.                 <a href="user_password.php?<?php echo $common_url_query; ?>">
  441.                     <?php echo ($strChangePassword); ?></a>
  442.             </td>
  443.         </tr>
  444.             <?php
  445.         } // end if
  446.  
  447.         // Logout for advanced authentication
  448.         if ($cfg['Server']['auth_type'] != 'config') {
  449.             $http_logout = ($cfg['Server']['auth_type'] == 'http')
  450.                          ? "\n" . '                <a href="./Documentation.html#login_bug" target="documentation">(*)</a>'
  451.                          : '';
  452.             echo "\n";
  453.             ?>
  454.         <tr>
  455.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  456.             <td>
  457.                 <a href="index.php?<?php echo $common_url_query; ?>&old_usr=<?php echo urlencode($PHP_AUTH_USER); ?>" target="_parent">
  458.                     <b><?php echo $strLogout; ?></b></a> <?php echo $http_logout . "\n"; ?>
  459.             </td>
  460.         </tr>
  461.             <?php
  462.         } // end if
  463.         echo "\n";
  464.         ?>
  465.         </table>
  466.     </td>
  467.  
  468.     <td>    </td>
  469.         <?php
  470.     } // end if
  471. } // end of if ($server > 0)
  472. echo "\n";
  473.  
  474.  
  475. /**
  476.  * Displays the phpMyAdmin related links
  477.  */
  478. ?>
  479.  
  480.     <!-- phpMyAdmin related links -->
  481.     <td valign="top" align="<?php echo $cell_align_left; ?>">
  482.         <table>
  483.         <tr>
  484.             <th colspan="2">  phpMyAdmin</th>
  485.         </tr>
  486.  
  487. <?php
  488. // Displays language selection combo
  489. if (empty($cfg['Lang'])) {
  490.     ?>
  491.         <!-- Language Selection -->
  492.         <tr>
  493.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  494.             <td nowrap="nowrap">
  495.                 <form method="post" action="index.php" target="_parent">
  496.                     <input type="hidden" name="convcharset" value="<?php echo $convcharset; ?>" />
  497.                     <input type="hidden" name="server" value="<?php echo $server; ?>" />
  498.                     Language <a href="./translators.html" target="documentation">(*)</a>:
  499.                     <select name="lang" dir="ltr" onchange="this.form.submit();">
  500.     <?php
  501.     echo "\n";
  502.  
  503.     /**
  504.      * Sorts available languages by their true names
  505.      *
  506.      * @param   array   the array to be sorted
  507.      * @param   mixed   a required parameter
  508.      *
  509.      * @return  the sorted array
  510.      *
  511.      * @access  private
  512.      */
  513.     function PMA_cmp(&$a, $b)
  514.     {
  515.         return (strcmp($a[1], $b[1]));
  516.     } // end of the 'PMA_cmp()' function
  517.  
  518.     uasort($available_languages, 'PMA_cmp');
  519.     reset($available_languages);
  520.     while (list($id, $tmplang) = each($available_languages)) {
  521.         $lang_name = ucfirst(substr(strstr($tmplang[0], '|'), 1));
  522.         if ($lang == $id) {
  523.             $selected = ' selected="selected"';
  524.         } else {
  525.             $selected = '';
  526.         }
  527.         echo '                        ';
  528.         echo '<option value="' . $id . '"' . $selected . '>' . $lang_name . ' (' . $id . ')</option>' . "\n";
  529.     }
  530.     ?>
  531.                     </select>
  532.                     <noscript><input type="submit" value="Go" /></noscript>
  533.                 </form>
  534.             </td>
  535.         </tr>
  536.     <?php
  537. }
  538.  
  539. if (isset($cfg['AllowAnywhereRecoding']) && $cfg['AllowAnywhereRecoding']
  540.     && $allow_recoding) {
  541.     echo "\n";
  542.     ?>
  543.         <!-- Charset Selection -->
  544.         <tr>
  545.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  546.             <td nowrap="nowrap">
  547.                 <form method="post" action="index.php" target="_parent">
  548.                     <input type="hidden" name="server" value="<?php echo $server; ?>" />
  549.                     <input type="hidden" name="lang" value="<?php echo $lang; ?>" />
  550.                     <?php echo $strMySQLCharset;?>:
  551.                     <select name="convcharset" dir="ltr" onchange="this.form.submit();">
  552.     <?php
  553.     echo "\n";
  554.     reset($cfg['AvailableCharsets']);
  555.     while (list($id, $tmpcharset) = each($cfg['AvailableCharsets'])) {
  556.         if ($convcharset == $tmpcharset) {
  557.             $selected = ' selected="selected"';
  558.         } else {
  559.             $selected = '';
  560.         }
  561.         echo '                        ';
  562.         echo '<option value="' . $tmpcharset . '"' . $selected . '>' . $tmpcharset . '</option>' . "\n";
  563.     }
  564.     ?>
  565.                     </select>
  566.                     <noscript><input type="submit" value="Go" /></noscript>
  567.                 </form>
  568.             </td>
  569.         </tr>
  570.     <?php
  571. }
  572. echo "\n";
  573. ?>
  574.  
  575.         <!-- Documentation -->
  576.         <tr>
  577.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  578.             <td>
  579.                 <a href="Documentation.html" target="documentation"><b><?php echo $strPmaDocumentation; ?></b></a>
  580.             </td>
  581.         </tr>
  582.  
  583. <?php
  584. if ($is_superuser || $cfg['ShowPhpInfo']) {
  585.     ?>
  586.         <!-- PHP Information -->
  587.         <tr>
  588.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  589.             <td>
  590.                 <a href="phpinfo.php?<?php echo PMA_generate_common_url(); ?>" target="_blank"><?php echo $strShowPHPInfo; ?></a>
  591.             </td>
  592.         </tr>
  593.     <?php
  594. }
  595. echo "\n";
  596. ?>
  597.  
  598.         <!-- phpMyAdmin related urls -->
  599.         <tr>
  600.             <td valign="baseline"><img src="<?php echo $item_img; ?>" width="7" height="7" alt="item" /></td>
  601.             <td>
  602.                 <a href="http://www.phpMyAdmin.net/" target="_blank"><?php echo $strHomepageOfficial; ?></a><br />
  603.                       [<a href="ChangeLog" target="_blank">ChangeLog</a>]
  604.                    [<a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/phpmyadmin/phpMyAdmin/" target="_blank">CVS</a>]
  605.                    [<a href="http://sourceforge.net/mail/?group_id=23067" target="_blank">Lists</a>]
  606.             </td>
  607.         </tr>
  608.         </table>
  609.     </td>
  610.  
  611. </tr>
  612. </table>
  613.  
  614.  
  615. <?php
  616. /**
  617.  * Displays the "empty $cfg['PmaAbsoluteUri'] warning"
  618.  */
  619. if ($display_pmaAbsoluteUri_warning) {
  620.     echo '<p class="warning">' . $strPmaUriError . '</p>' . "\n";
  621. }
  622.  
  623. /**
  624.  * Warning if using the default MySQL privileged account
  625.  */
  626. if ($server != 0
  627.     && $cfg['Server']['user'] == 'root'
  628.     && $cfg['Server']['password'] == '') {
  629.     echo '<p class="warning">' . $strInsecureMySQL . '</p>' . "\n";
  630. /*** Debut EasyPHP specific ***/
  631. echo "<font color='#008000'><b>[EasyPHP : Ignore this message if you don't modify default configuration:
  632. MySql is accessible only from localhost address]</b></font>";
  633. /*** Fin EasyPHP specific ***/
  634. }
  635.  
  636. /**
  637.  * Warning for PHP 4.2.3
  638.  */
  639.  
  640. if (PMA_PHP_INT_VERSION == 40203 && @extension_loaded('mbstring')) {
  641.     echo '<p class="warning">' . $strPHP40203 . '</p>' . "\n";
  642. }
  643.  
  644. /**
  645.  * Displays the footer
  646.  */
  647. echo "\n";
  648. require('./footer.inc.php');
  649. ?>
  650.